package com.wzy.media.service;

import com.wzy.media.model.po.MediaProcess;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author wzy
 * @Date 2024/1/15 16:45
 * @description: 视频任务处理实现接口
 */
public interface MediaFileProcessService {

    /**
     * 以任务（视频）序号按取模的方式分派给各个执行器处理
     * @param shardTotal  执行器总数
     * @param shardIndex  任务序号
     * @param count 任务数
     * @return
     */
    List<MediaProcess> selectListByShardIndex(int shardTotal, int shardIndex, int count);

    /**
     *开启一个任务
     * @param mediaProcess 任务
     * @return true开启任务成功，false开启任务失败
     */
    Boolean startTask(MediaProcess mediaProcess);

    /**
     * 保存处理任务结果
     * @param taskId 任务id
     * @param status 任务状态
     * @param fileId 视频文件id
     * @param url   视频文件链接
     * @param errorMsg  处理失败信息
     */
    void saveProcessFinishStatus(Long taskId,String status,String fileId,String url,String errorMsg);

    /**
     * 当处理时间超过最大时间判定为失败则修改任务状态
     * @param maxTime 最大时间
     * @return
     */
    Boolean updateStatusExceedMaxTime(int maxTime);
}
